Computer manufacturers oftentimes use chips that include multiple processor cores in order to improve performance. Situations can arise where different processor cores on the same chip support different features, which can be referred to as asymmetric processor cores. The use of asymmetric processor cores in a computer, however, is not without its problems. One such problem is that it can be difficult to run virtual machines having multiple virtual processor cores on such a computer because there is typically no permanent correlation between a virtual processor core and a particular processor core of the computer running that virtual processor core. This can lead to situations where a virtual processor core is limited to using only features that are supported by all of the physical processor cores, which reduces the benefits of having asymmetric processor cores.
Another problem with using asymmetric processor cores in a computer is that it can be difficult for the operating system and application to manage the heterogeneous nature of the system on which they are running. This can lead to situations where system threads or application threads are scheduled on cores that do not support functionality used by the threads, and can cause functional issues in certain situations and performance issues in other cases due to attempts to execute instructions that are undefined for particular cores.